Ali Ranjbar
San Diego, CA; Mobile:
858-519-2779; ali.ranjbar@ieee.org
|
Objective
|
§
Obtain a lead/architect role in an
embedded/real-time SW/FW environment, to help company’s growth through
application of my technical and interpersonal skills, further my career
growth, build teams, promote continuous improvement and have fun.
|
|
|
|
|
Skills & Knowledge
|
|
|
|
|
Embedded
Software/ Firmware Development Skills:
|
Embedded Linux
System (device driver, BSP, U-Boot, RedBoot, networking, power management)
and application level programming. Working knowledge of real-time/Embedded
software development & integration, Wireless routers; Satellite set-top
box. Power Management of Hand-Held device. SW/ HW interfacing, HW
initialization code (boot-loaders), memory testing algorithm, task
synchronization. Deadlock and priority inversion prevention, code
optimization. Digital and analog oscilloscopes, logic analyzers, emulators
(ICE), JTAG. , image processing libraries (OpenGL. LCMS, Open CV, Intel
Integrated Performance primitive Intel IPP). Knowledge of Open Embedded,
Bluetooth (BLE), ZigBee, 802.11P, IEEE 1609 protocols, BLE, J2735 SAE
standards.
|
|
|
|
Software Design:
Mobile OS:
|
Fluent in Real-Time, Embedded,
Multi-threaded, Distributed software design using Structured or Object
Oriented methodologies. Full cycle software development (Call processing,
Fault management, OAM&P), State Machine development, multi-threaded
software development and debugging. C++ STL and STD library, QP frameworks.
Mobile Power Management, Power
Management Integrated Chip (PMIC), Symbian, Embedded Linux, preliminary
Android plus hands on experience (dated) J2ME and BREW. Linux Power
Management, CPUIDEL subsystem.
|
|
|
|
Microprocessors:
|
Qualcomm (ARM based) SOC.
Atmel ARM926EJS (ARM), AVR32, ATxmega & ATmega family. Cavium Network
Octeon (MIPS), QorIQ (P2020), i.Mx Freescale, Blackfin family (BF533,
BF561), OMAP platform 5912, MC6800, MC68020/30, PowerPC family (MPC500),
Cold Fire (MC68376) and Intel’s 80188EBB; BCE6348 and BCE6358 Broadcom
Controllers and PIC and MSP430 series. Worked with CCS C/C++, gnu,
compilers
|
|
|
|
Programming Languages &
Object-oriented:
|
Strong C, C++ programmer,
Symbian (C++), J2ME &Java. Assembly, Python, PERL, Shell scripting,
CSS, HTML, XHTML, JavaScript, XML, PROTEL, HTML, TCL. UML 1.2, Design
Patterns (DP) (used State, Strategy, Facade, Microkernel in projects),
Rhapsody, ROPES, RUP & Rational Rose. Knowledge of MFC and GUI
development.
|
|
|
|
RTOS & OS:
|
Commercial RTOSs: Embedded
Linux, RTXC, Nucleus, QNX, VDK, uC-OS. Proprietary RTOSs: SOS (Nortel) and
EXEC (Motorola). Knowledge of Unix IPC (system and socket programming).
Familiarity with OSEK/VDX.
|
|
|
|
Technologies, Networking&
Wireless Telecommunication
|
In depth knowledge of CDMA
2000(EV_DO), IS-95 (A, B), EDGE, TDMA, GSM, FDMA. 3/4Gwireless (CDMA2000,
WCDMA, Wi-MAX (802.16X), LTE. TCP/IP and its related protocols, Wi-Fi
802.11 protocols, 802.1X, EAPOL, RADIUS, TFTP, SMPP, RTP, RSVP. VOIP
protocols (SIP, H323, MGCP).
Detailed knowledge of layer2
and 3 protocols; OpenVPN; IPsec, SSL/TLS, 802.1X, RADIUS, EtherCAT, CAN
(Controller Area Network) bus, CANopen technologies and DS301-DS402
standards.
ATM. Layer 2 protocols
(Ethernet, PPP, PPPOE). High level Knowledge of IP Multimedia
Services (IMS), SONET. QoS, ARP, Spanning Tree. Legacy protocols (SS7 ISUP,
ISDN).
|
|
|
|
Software Tools:
|
IAR Embedded Workbench,
AVRStudio4 and AVRStudio32; Several Eclipsed based IDE,(Wind-River
Workbench, Mentor Graphics’, DevRocket); Visual C++, MS Office, VISIO and
MS Project, Understand C++; Clear case, dbg, Purify, Expert Sniffer,
Sublime, PVCS, DDTS, Vantive, Rhapsody, Code Wright, CodeWarrior, Source
Insight, synergy, CVS, Bugzilla, Subversion; Trac; GIT, SVN,
Crucible, Jira.
|
|
|
|
Work Experience: Cymer; San
Diego; CA 92127;
Dec 2013 to present:
Software Solution Architect
(Contract)
|
·
Developed Linux user space
C++/Python (Gstreamer, plugins), device drivers in C Video (V4L2) I2C
driver) and its interface to MAX64380 H.264, AAC CODEC to support High
Definition (HD 1080p) resolution.
·
Full cycle SDLC (C++ on VxWorks
6.9) Software is implemented as a C++ library on VxWorks 6.9. Managed a 4
member development team. Man-month estimate, sitting on CCB board.
·
Used design pattern to architect,
design and implement an EtherCAT based connectivity layer (middleware)
solution to abstract physical bus connectivity for Cymer (EUV) chip
manufacturing equipment software. Work spanned across several technologies
(EtherCAT, Controller Area Network (CAN), CAN over EtherCAT (CoE),
CANopen), device selection, (ELMO MC Gold Bell drive, EL4/3001, 1809/2809).
Prototyped a slave device.
·
Interfaced with Electrical,
mechanical, mechatronics subsystem engineers to fulfill EtherCAT subsystem
integration within the overall system. Used Wireshark to verify EtherCAT
packets content during testing phase.
·
Main interface to Acontis to
acquire and integrate their EC-Master (EtherCAT stack) within the
middleware.
·
Authored requirements, high and low
level design, test plan and technology road map documents. Improved the
software architecture, by introduction of asynchronous communication
mechanism and support for various EtherCAT network topologies. Added
support for flexible network topology.
·
Main interface with vendors
(hardware & software) (ELMO, Beckhoff, Acontis) for device selection,
technical issues, license acquisition to facilitate integration of their
products within Cymer products.
|
|
|
|
Qualcomm; San Diego; CA
92121; SOC lead Engineer (power) ;
Sep 2012 to Nov 2013:
(Contract)
|
·
Focused on MSM Power Manager Power
(MPM), Modem (LTE), Security, watchdog, Flash (wear-leveling).
·
Worked on Android integration.
Integrated and packaged low-level software within Android platform for
several members of Qualcomm Snapdragon family.
·
Designed a prototype safety
application for automotive intelligent Transport system (ITS), based on
Wave (Wireless Access in Vehicular Environment), DSRC IEEE 1609 protocol.
J2735 (SAE) and (FHA) standards.
·
Developed code to validate MPM and
high level modem blocks using Lauterbach TRACE32 for Qualcomm snapdragon
SOC (multi-core S4). Used digital scopes, logic analyzers, Lauterbach
TRACE32 in the lab.
·
Developed driver for several
Qualcomm proprietary PMIC (SPMI interface) to validate interaction between
PMIC, MPM and other Power Management HW blocks for Android on Snapdragon
800 series. Validated specification for Rock Bottom Sleep Current (RBSC)
measurements. Developed code to validate Aggressor Victim scenarios
(identify critical voltage drop across several voltage rails). Integrated
drivers for Android.
·
Worked on watchdog, security
hardware blocks on multi-core snapdragon SOC (Android driver integration).
·
Troubleshot low level core bring-up
for ARM (issues ranged from dealing with scatter file, stack corruption).
|
|
|
|
CISCO Consumer Product
Division; Irvine, CA, 92617
March 2011 to Sep 2012;
Lead Firmware Engineer
(Contract)
|
·
Architected, designed a parental
control solution on an Internet Access points. Work included two way
communication mechanisms between Kernel to User space and vice-versa.
Comparative study on using Netlink socket, Proc, Sys FS and their impact on
performance, software maintenance.
·
Full cycle design and development
C/C++ (STL, Boost) on an Embedded Linux (BSP and application). BSP (U_Boot)
porting (DDR3, NAND Flash, Ethernet PHY support), troubleshooting board
bring up on a Freescale QorIQ based (P2020). Worked with both build root
and Open Embedded build systems.
·
Re-engineered the custom Linux
Networking code to ease different 802.11 technology integration. Work
spanned across, mac802.11, SoftMac, Netfilter, Iptables, Conntrack. Linux
CPUIDEL subsystem.
·
Led a project to prototype use of
Android in set-top box environment instead of Linux based platform.
·
Wrote and troubleshot a FB based
video driver, dealt with system initialization issues (mainly clock speed,
SD interface). Back ported Linux AP (access point) mode code from Linux
2.6.38 to 2.6.32 kernel. Modified driver code for Marvel 802.11 Chip.
Integrated SysStat module (performance management) to custom Linux
platform.
·
Worked on establishing Android
system setup and authored a strategy document to support 802.15.4 based
technologies (BLE) within Cisco product line. Worked with CODECs (H.264,
AAC, etc.).
·
Architected and implemented a
proprietary wireless system to run on MSP430 with no OS and developed test
fixture for the system.
·
Worked with Freescale and Mentor
Graphic IDE tools and build systems, LTIB, build-root, Mentor’s System
Builder, Code Warrior, code profiling, SVN, Trac, WebSVN, GIT. Worked with
MontaVista Embedded Solutions (CGE6.0), Knowledge of MontaVista toolset
(DevRocket, MVIP, Open Embedded, bitbake).
·
Architected, developed a Security
solution SSL/TLS based VPN for a MIPs based processor (Cavium Octeon).
·
Wrote Python code (server side
(Cherrypy and Tornado)) for a web based User Interface on embedded devices.
·
Wrote low level SPI and I2C Kernel
Code to control Digital to Analog (DAC) devices which controlled an IEEE
1558 device. Low level, (U-Boot) work for Cold-Fire family products MFC5742
to interface with new code/data Flash. Developed Linux drivers for a FPGA
on an ATMEL ARM926-EJS. Interfaced with customers, vendors, distributors
(Avnet, Arrow).
|
|
|
|
Shure Technologies Niles, IL;
Jan 2010 to Feb 2011;
Software Platform Architect
(Contract)
|
·
Architected and full cycle SW
development to add SD card storage to wireless microphones on IAR
Workbench, Studio4 and AVR32 Studio in C for ATMEL based systems with no
OS. After reverse engineering the system, I ported the code base from an
8bit based ATXmega application to an AVR32 bit chip. Besides development, I
led and interfaced with internal (cross functional) and external
customer/vendor.
·
Architected and full cycle software
development of VOIP solutions (C, C++) on Windows and VxWorks. Worked
on BSP and porting an existing IP Phone to a new HW/SW platform for a
Broadcom Chip and PhonexExchange SDK. Used VxWorks Workbench 3.0 and
Tornado 2.2 and Wind River toolset to develop SIP based IP Phones.
Developed 802.lW STP and RSTP protocol software.
·
Full cycle software development in
uClinux for a BF537 DSP and PowerPC 440EP, (ported a SIP stack and worked
on the interface between the BF537 and Altera FPGA (SPORT interface). Wrote
driver for the TWI interface and display devices. Worked with several
CODECs (G.711, G.719, MP3, AAC, H.264).
·
Re-engineered a legacy system to
use virtualization technology, developed future product road map. Worked
with Virtualization products from VMware. (VMware Server, VMware Studio,
Vappliances).
|
|
|
|
Motorola Mobility
Libertyville, IL;
Feb2008 to Jan 2010;
Lead Embedded Software
Engineer
(Contract)
|
·
Architected and full cycle software
development for a navigation system on Symbian C++ and Linux on Motorola
phones (system partition). Defined interfaces between system components
GPS, Linux (Frame Buffer, LCD display). Developed low-level frame buffer
(FB) device driver on Linux
·
Evaluated several phone Web based
application framework, such as PhoneGap, Work\Light, etc. Worked on system
software to support Mobile IP support.
·
Worked on software to abstract air
interface technology (Wi-MAX, LTE, CDMA2000) from call phone software.
·
Added features, maintained, ported
of the GKI (General Kernel Interface). GKI is a generic interface
(middleware) to handset application software that in turn interfaces to
different underlying OS (Symbian, Linux, VxWorks, or Linux). Wrote drivers
and a multi-threaded library for the mobile handset display screen. The
library managed the color management of the screen and different graphic
file format displays (BMP, TIFF, and GIF).
·
Developed a Location Based
application (LBS) for N95 phones in Carbide C++ and Nokia SDK Symbian C++
(S60). Led a project with 4 team members (man month estimation, feature
assignment, project status reporting to management, etc.). Customer
interface for pre-sale (requirement) and post-sale (training customer in
India, Japan).
|
|
ISCO International, Elk
Grove, IL
Dec 2006 to Feb 2008
Firmware/ DSP Software Architect
(Contract)
|
·
Led architectural definition (5
members) of the next generation product (processor selection, interface
definition), system, and bus interconnects between control processor, FPGA
and DSP.
·
Full cycle SW development Carbide
C++ (CSY, TSY, etc.) Series60 in Symbian 8.2.Full cycle software
development in C/C++ on VisualDSP++ IDDE (Blackfin BF533 and BF561
(Dual-Core)) DSP. Work on Startup Code, LDF, FFT, FIR, IIR filters,
JTAG, Flash driver and software driver for SPI, PPI SPORT ( interfaces that
connected the Blackfin to Xilinx FPGA and ADC/DAC)
·
Led a 3 member team to develop a
Java application on Eclipse. Wrote software requirement and project managed
(man-month estimate, cost control) outsourcing activities. Wrote part of
the functionality and maintained it later.
·
Established Configuration
Management (SCM) process installed and maintained Subversion and Trac in
the company and trained the personnel.
·
External Customer interface
(Mexico) to solicit requirements and post-sale support.
|
|
|
Westel Corp, Naperville; IL;
60563
Dec 2005 to Dec 2006
Firmware Architect
(Contract)
|
·
Architected and full cycle software
development in C on Linux (Fedora) for an ADSL based product. Integration
of Open Source modules SysStat (performance management) and OpenSwan
(IPSec) to the existing Linux platform and application software. Linux
Kernel development (device driver). Bug fixing for Broadcom BCM6358 BSP.
Implementation of 802.1X, WPA and RADIUS client side (NAS) on a CPE. IMS feature
implementation on a CPE (SIP) to interwork with GSM UMTS telephony. Bug
fixing in Linux networking code (net filter, Iptables (IP ALGs) and other
device driver. Linux network driver performance improvement.
·
Functional specification,
high/low-level design, implementation of 802.11d and 802.11i set of
protocols. Wrote Minicom and shell scripts to semi-automate the testing
phase. Worked with OMAP 5912 platform, Wireless extension on Linux.
|
|
|
Phillips Semiconductor San
Jose, CA;
Feb 2005 to Dec 2005
Senior Firmware Engineer
(Contract)
|
·
Full cycle SW development in C on
Linux. Implemented 802.11D and 802.11i protocols and preliminary work on
802.16.e support for NXP chips. Worked on PHY and MAC level implementation
of 802.11 protocol.
·
Architected, designed and
implemented (team of three developers) support for Short Message Peer to
Peer (SMPP) protocol. Developed the Functional Specification (FS) and High
Level Design (HLD) and Low Level Design (LLD) to integrate SMPP (a TCP/IP
based protocol)) subsystem software within the existing product.
·
UNIX and Linux IPC and network
programming (sockets, streams). Used Singleton, Strategy Design Patterns.
·
Full cycle software/firmware
development in C, C++ on VisualDSP++ (BF533) and Linux for Wi-Fi and Wi-Max
chips. Full cycle embedded software development in C++/C on a Solaris
9/QNX4.2.
|
|
|
Quarter Lambda Corp. San
Marcos, CA:
Nov 2002 to Jan 2005
Software/Firmware Manager/
Architect
(Contract)
|
·
Managed software development for
medical devices (multi-site 15 people internationally) with direct report
to the VP of Engineering. Hands on experience with FDA specs, 21 CFR-8xx,
especially CFR software validation.
·
Led the software development
operation within the company. Company software product was in two different
areas, mobile device Symbian C++ (CodeWarrior) Series60 in Symbian 7.1 and
industrial control development..
·
Led the Performance enhancement by
changing the code to a multi-threaded structure. Established SCM by using
Clear case, Vantive to manage code churn and bug tracking.
·
Developed Bluetooth (client)
software for the mobile handsets (GSM and CDMA) to interact with the
Telematic application and industrial control automation systems. Wrote
application software to interact with other tasks and subsystems over the
CAN and Most (Media Oriented System Transport) buses.
·
Wrote and integrated USB host and
client stack and audio and communication class driver requirements.
·
Integrated Bluetooth stack (BlueZ)
into Linux, developed tools in Java and PERL to test integrated software.
|
|
|
OpenTV, Naperville, IL,
Oct 1999 to Oct 2002
Lead Embedded/ Firmware
Engineer
(Contract)
|
·
Full cycle SW development in C/C++,
and Java (Device Mosaic) on Linux and Windows for a cable set top boxes on
Windows NT and Linux. Developed I/O software for set-top boxes in
VxWorks, Linux and QNX.
·
Ported Device Mosaic to a
proprietary platform, Developed USB interface functionality for the set top
boxes. Porting and integrating third party software. Used html, CSS,
JavaScript, XHTML to build live and test web pages to verify W3C
conformance. Used Clear case, Vantive and other SCM tools.
·
Used design patterns to improve
architect, document and facilitate future maintenance of the subsystem.
·
Full cycle application and platform
SW development in C/C++ on Nucleus RTOS for embedded processors (MC68360
and PowerPC). Development was in both UNIX & NT environment. Developed
VOIP (Voice over IP) and FOIP (Fax over IP) related software. Made changes
at the RTSP layer. Developed a proprietary interface to the SNMP software
for network management. Worked with Flash memories to save the database in
the Flash. Developed I/O software for the cards to work with the Nucleus.
|
|
|
Motorola Cellular
Infra-structure Group (CIG) , Arlington Heights, IL, 60004
Oct 1996– Oct1999
(perm
position); Senior Software Engineer
|
·
Full cycle application/platform SW
development C/C++ on UNIX hosts (cross-compiled for MC68030) in the
following functional areas: OAM&P, call processing (CDMA, GSM), fault
management, operating system fixes, performance improvement, code
optimization and tool design (PERL & html).
·
Led a team of three developers
(Level 2 support) to investigate and fix urgent software problems in the
field. Interfaced with external Motorola customers, traveled nationally,
internationally to interface, train customers.
·
OS/IDE and development platform
evaluation for a new project. UNIX network programming (sockets, streams)
·
Changed a router and database
access related process from a single-threaded to a multi-threaded process.
·
Integrated TFTP software to
download boot code and database to a network node (on Cellular/PCS) system.
Implemented a feature to hot swap redundant clock cards in a digital
system. Project involved direct interaction with hardware (Clock cards were
memory mapped I/O). Designed and implemented a feature to automatically
swap a LAN upon a fault occurrence on a Token Ring.
·
Worked with Sniffer (Ethereal) and
deciphered TCP/IP and Token Ring packets.
·
Customer Interface & training
(Korea, Peru, Japan, Mexico across United States). Wrote and updated an
existing troubleshooting document, developed two training courses and
trained customer’s engineers.
|
|
|
Nortel Networks Nepean,
Ontario, Canada; Feb 1993–Oct 1996 (PERM Position)
Software Engineer; Member of
Technical staff
|
·
Full cycle embedded SW development
in C/C++ on a UNIX host for the embedded systems (Service Creation
Environment (SCE/SCP)) nodes in an AIN network. Developing software on a
Unix Box (HPUX9) (a database and transaction-processing server) which
interfaced landline and cellular telephony switches (GSM and CDMA). Dealt
with performance enhancement, shared memory issues, Unix IPC
·
Led a multi-site team software team
in India and USA (RTP) and Canada responsible for a test automation project
(man month estimation, project and progress tracking). Wrote product test
strategy, product test plan document and test cases. Executed white or
black box testing, documented software bugs and followed up with the
respective development organization until software bugs are fixed.
Developed manual and automated regression package.
|
|
|
Bachelor
of Science in Electrical Engineering
|
·
B.Sc. 1989– 1994 University of
Manitoba, Man, Canada. Bachelor of Science in Electrical Engineering (major
in Telecommunication), Digital Communication, control theory, advanced
math, calculus, differential equations , statistics. Received Ester R.
Steel award for high standing in the first two years.
|
|
|
Personal Development:
|
·
Technical Courses: Wireless Data, PERL, Python, Android and IOS
Programming, Object oriented analysis and design, Data Driven and
structured programming. Design Pattern course. IEEE training. Took many
Coursera courses.
·
Personal Development courses: Seven habits of highly effective people, time
management, consulting, influencing, effective listening, and leadership
courses.
|
|
|
Personal
Interests:
|
·
Member of IEEE since 1991,
coaching youth soccer, Arduino, following technology trends, reading,
camping.
|
|
|
|
|
|
|
|
|
|